package Day_0210.DesignPattern;

/**
 * @author zxc
 * @date 2023/02/11 11:49
 **/
public class FactoryPattern {
    public static void main(String[] args) {
        /**
         * 谈一谈对于工厂模式的理解
         * ===》
         * 1.简单工厂模式，又叫静态工厂方法模式;
         * 就是建立一个工厂类，对实现了同一接口的一些类进行实例的创建。
         * ===>
         * 比如，一台咖啡机就可以理解为一个工厂模式，你只需要按下想喝的咖啡品类的按钮（摩卡或拿铁），它就会给你生产一杯相应的咖啡，
         * 你不需要管它内部的具体实现，只要告诉它你的需求即可。
         *
         * 2.优点：
         * （1）工厂类含有必要的判断逻辑，可以决定在什么时候创建哪一个产品类的实例，客户端可以免除直接创建产品对象的责任，
         *  而仅仅“消费”产品；简单工厂模式通过这种做法实现了对责任的分割，它提供了专门的工厂类用于创建对象;
         * （2）客户端无须知道所创建的具体产品类的类名，只需要知道具体产品类所对应的参数即可，对于一些复杂的类名，通过简单工厂模式可以减少使用者的记忆量；
         * （3）通过引入配置文件，可以在不修改任何客户端代码的情况下更换和增加新的具体产品类，在一定程度上提高了系统的灵活性。
         *
         * 3.缺点：
         * （1）不易拓展，一旦添加新的产品类型，就不得不修改工厂的创建逻辑;
         * （2）产品类型较多时，工厂的创建逻辑可能过于复杂，一旦出错可能造成所有产品的创建失败，不利于系统的维护;
         *
         */
    }
}
